package com.wicket.okrframework.integration;

import com.wicket.okrframework.common.ro.OkrResult;
import com.wicket.okrframework.integration.dto.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import  com.wicket.okrframework.integration.dto.*;
import  com.wicket.okrframework.integration.dto.*;
import  com.wicket.okrframework.integration.dto.*;
import  com.wicket.okrframework.integration.dto.*;
import  com.wicket.okrframework.integration.dto.*;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@FeignClient("framework")
public interface FwBaseDivineDataClient {
    /**
   * D查询可用管理部门（特殊方法）
   */
    @PostMapping("/base/divineData/queryDeptCollectionRemoveExistingDataList")
    public OkrResult<QueryDeptCollectionRemoveExistingDataListRespDto> queryDeptCollectionRemoveExistingDataList(QueryDeptCollectionRemoveExistingDataListReqDto reqDTO);

    /**
   * Redis批量清空用户信息
   */
    @PostMapping("/base/divineData/batchClearUserInfoFromRedis")
    public OkrResult<BatchClearUserInfoFromRedisRespDto> batchClearUserInfoFromRedis(BatchClearUserInfoFromRedisReqDto reqDTO);

    /**
   * D-Redis清空用户信息
   */
    @PostMapping("/base/divineData/clearUserInfoFromRedis")
    public OkrResult<ClearUserInfoFromRedisRespDto> clearUserInfoFromRedis(ClearUserInfoFromRedisReqDto reqDTO);

    /**
   * D-Redis清空用户Token(公共)
   */
    @PostMapping("/base/divineData/clearTokenFromRedis")
    public OkrResult<ClearTokenFromRedisRespDto> clearTokenFromRedis(ClearTokenFromRedisReqDto reqDTO);

    /**
   * D-Redis批量清空用户Token
   */
    @PostMapping("/base/divineData/batchClearTokenFromRedis")
    public OkrResult<BatchClearTokenFromRedisRespDto> batchClearTokenFromRedis(BatchClearTokenFromRedisReqDto reqDTO);

    /**
   * D-Redis获取用户就职信息
   */
    @PostMapping("/base/divineData/addGetUserIrInfoFromRedis")
    public OkrResult<AddGetUserIrInfoFromRedisRespDto> addGetUserIrInfoFromRedis(AddGetUserIrInfoFromRedisReqDto reqDTO);

    /**
   * D-Redis获取用户基本信息
   */
    @PostMapping("/base/divineData/getUserBasicInfoFromRedis")
    public OkrResult<GetUserBasicInfoFromRedisRespDto> getUserBasicInfoFromRedis(GetUserBasicInfoFromRedisReqDto reqDTO);

    /**
   * Redis获取空间信息
   */
    @PostMapping("/base/divineData/getSpaceInfoFromRedis")
    public OkrResult<GetSpaceInfoFromRedisRespDto> getSpaceInfoFromRedis(GetSpaceInfoFromRedisReqDto reqDTO);

    /**
   * Redis切换公共信息（后端）
   */
    @PostMapping("/base/divineData/changePublicInfoFromRedis")
    public OkrResult<ChangePublicInfoFromRedisRespDto> changePublicInfoFromRedis(ChangePublicInfoFromRedisReqDto reqDTO);

    /**
   * 异步结束
   */
    @PostMapping("/base/divineData/asynchronizationEnd")
    public OkrResult<AsynchronizationEndRespDto> asynchronizationEnd(AsynchronizationEndReqDto reqDTO);

    /**
   * 异步开始
   */
    @PostMapping("/base/divineData/asynchronizationStart")
    public OkrResult<AsynchronizationStartRespDto> asynchronizationStart(AsynchronizationStartReqDto reqDTO);

    /**
   * D查询过滤后可推荐业务场景列表
   */
    @PostMapping("/base/divineData/queryHostTypeCollectionRemoveExistingDataList")
    public OkrResult<QueryHostTypeCollectionRemoveExistingDataListRespDto> queryHostTypeCollectionRemoveExistingDataList(QueryHostTypeCollectionRemoveExistingDataListReqDto reqDTO);

    /**
   * D检查集合去除已存在数据
   */
    @PostMapping("/base/divineData/checkCollectionRemoveExistingData")
    public OkrResult<CheckCollectionRemoveExistingDataRespDto> checkCollectionRemoveExistingData(CheckCollectionRemoveExistingDataReqDto reqDTO);

    /**
   * D授权角色/权限去除已存在
   */
    @PostMapping("/base/divineData/addCollectionRemoveExistingData")
    public OkrResult<AddCollectionRemoveExistingDataRespDto> addCollectionRemoveExistingData(AddCollectionRemoveExistingDataReqDto reqDTO);

    /**
   * D-公共信息存储Redis
   */
    @PostMapping("/base/divineData/putPublicInfoToRedis")
    public OkrResult<PutPublicInfoToRedisRespDto> putPublicInfoToRedis(PutPublicInfoToRedisReqDto reqDTO);
/**
   * D1-推送公共字段缓存(公共)
   */
    @PostMapping("/base/divineData/putPublicFieldCacheCom")
    public OkrResult<PutPublicFieldCacheComRespDto> putPublicFieldCacheCom(PutPublicFieldCacheComReqDto reqDTO);
/**
   * D1查询用户角色缓存Redis列表（特殊方法）(公共)
   */
    @PostMapping("/base/divineData/queryUserRoleRedisListCom")
    public OkrResult<QueryUserRoleRedisListComRespDto> queryUserRoleRedisListCom(QueryUserRoleRedisListComReqDto reqDTO);
/**
   * D1-集合去除已存在员工就职记录数据(公共)
   */
    @PostMapping("/base/divineData/addCollectionRemoveExistingDataCom")
    public OkrResult<AddCollectionRemoveExistingDataComRespDto> addCollectionRemoveExistingDataCom(AddCollectionRemoveExistingDataComReqDto reqDTO);
/**
   * D1执行接收字段(公共)
   */
    @PostMapping("/base/divineData/implementReceiveFieldCom")
    public OkrResult<ImplementReceiveFieldComRespDto> implementReceiveFieldCom(ImplementReceiveFieldComReqDto reqDTO);
/**
   * D1集合去除已存在的部门数据(公共)
   */
    @PostMapping("/base/divineData/queryCollectionRemoveDeptExistingDataListCom")
    public OkrResult<QueryCollectionRemoveDeptExistingDataListComRespDto> queryCollectionRemoveDeptExistingDataListCom(QueryCollectionRemoveDeptExistingDataListComReqDto reqDTO);
//
}